Conventionally, some data file and data stream formats include header objects. The header object includes “meta-content” information used for identifying and using the content data included in the data file or data stream.
For example, one data stream format is the Advanced Streaming Format (ASF), which is an extensible file format designed to store coordinated multimedia data. ASF supports data delivery over a wide variety of networks and protocols while allowing for local playback.
Each ASF file is composed of one or more media streams. The header object specifies the properties of the entire file, along with stream-specific properties. In ASF, each file must have one header object. The header object provides a well-known byte sequence at the beginning of ASF files (the header object GUID (globally unique identifier)) and to contain all the information needed to properly interpret the multimedia data. The header object may be thought of as a container that contains header object information and a combination of header sub-objects. The header object information consists of a GUID for the header object (“ASF_Header_Object”), the size of the header object, and the number of header sub-objects contained in the header object. Each header object begins with a GUID.
Header sub-objects include:                A file properties sub-object, which defines the global characteristics of the multimedia data in the file;        A stream properties sub-object, which defines the specific properties and characteristics of a media stream;        The header extension sub-object, which allows additional functionality to be added to an ASF file while maintaining backwards compatibility, and is a container containing extended header sub-objects;        The codec list sub-object, which provides user-friendly information about the codecs and formats used to encode the content found in the ASF file;        The script command sub-object, which provides a list of type/parameter pairs of Unicode strings that are synchronized to the ASF file's timeline;        The marker sub-object, which contains a small, specialized index that is used to provide named jump points within a file to allow a content author to divide content into logical sections, such as song boundaries in an entire CD or topic changes during a long presentation, and to assign a human-readable name to each section of a file for use by the user;        The bitrate mutual exclusion sub-object, which identifies video streams that have a mutual exclusion relationship to each other (in other words, only one of the streams within such a relationship can be streamed and the rest are ignored);        The error correction sub-object, which defines the error correction method and provides information needed by the error correction engine for recovery;        The content description sub-object, which permits authors to record well-known data describing the file and its contents, including title, author, copyright, description, and rating information;        The extended content description sub-object, which permits authors to record data describing the file and its contents that is beyond the standard bibliographic information such as title, author, copyright, description, or rating information;        The content encryption sub-object, which identifies if the content is protected by a digital rights management (DRM) system. This sub-object includes the DRM license-acquisition URL, the DRM Key ID, and other DRM-related metadata.        The stream bitrate properties sub-object, which defines the average bitrate of each media stream in the multimedia data; and        A padding sub-object, which is a dummy sub-object used to pad out the size of the header object.        
The entity which first creates the data stream file and any successive entities acting on it may add or change elements of the header file. For example, a content-creating entity may create a data stream file, and include information in the content description object regarding the content. A second entity may create markers within the data, and wish to add a marker object with track information. And a third entity, which distributes the data stream file, may add a script command object containing actions or data for scripts. For example, a script command object may contain information that opens a web browser window to a specified URL (uniform resource locator).
Because a number of entities may act on an ASF file, there is no way to determine which entity has created which part of the header object. Additionally, a change of information by an attacker cannot be identified.